#ifndef _PGOBJECT_H_
#define _PGOBJECT_H_

#include<Interfaces.h>

// Some wacky workaround for first object
__declspec(selectany) bool bIsFirstObject = true;

/* FYI
Memeory management taken from 
http://www.gamedev.net/page/resources/_/technical/game-programming/enginuity-part-ii-r1954
*/

class PALEGEM_API pgObject : public IObject
{

public:
	pgObject();
	virtual ~pgObject();

	 
	void OnEvent(const IEvent* eEvent)const{};
	virtual void AddRef();
	virtual void Release();
	static void CollectGarbage();
	static bool ClearAll();


};

#endif